@echo off
chcp 65001 > nul
echo.
echo ==========================================
echo    🚀 APIViewer 医学图像处理系统启动器
echo ==========================================
echo.

REM 检查Node.js是否安装
where node >nul 2>nul
if %ERRORLEVEL% neq 0 (
    echo ❌ 错误: 未找到 Node.js
    echo 💡 请先安装 Node.js: https://nodejs.org/
    pause
    exit /b 1
)

REM 检查Python是否安装
where python >nul 2>nul
if %ERRORLEVEL% neq 0 (
    echo ❌ 错误: 未找到 Python
    echo 💡 请先安装 Python: https://python.org/
    pause
    exit /b 1
)

echo 🔍 检查项目结构...
if not exist "frontend\package.json" (
    echo ❌ 错误: 前端项目不存在
    echo 💡 请确保在正确的项目目录下运行此脚本
    pause
    exit /b 1
)

if not exist "backend\main.py" (
    echo ❌ 错误: 后端项目不存在
    echo 💡 请确保在正确的项目目录下运行此脚本
    pause
    exit /b 1
)

echo.
echo 📋 选择启动模式:
echo [1] 只启动前端 (端口 3000)
echo [2] 只启动后端 (端口 8000)
echo [3] 同时启动前后端 (推荐)
echo [4] 安装依赖并启动
echo [0] 退出
echo.
set /p choice=请选择 (1-4, 0): 

if "%choice%"=="1" goto start_frontend
if "%choice%"=="2" goto start_backend
if "%choice%"=="3" goto start_both
if "%choice%"=="4" goto install_and_start
if "%choice%"=="0" exit /b 0

echo ❌ 无效选择，请重新运行脚本
pause
exit /b 1

:install_and_start
echo.
echo 🔧 正在安装依赖...
echo.
echo 📦 安装前端依赖...
cd frontend
call npm install
if %ERRORLEVEL% neq 0 (
    echo ❌ 前端依赖安装失败
    pause
    exit /b 1
)
cd ..

echo.
echo 🐍 安装后端依赖...
cd backend
pip install -r requirements.txt
if %ERRORLEVEL% neq 0 (
    echo ❌ 后端依赖安装失败
    pause
    exit /b 1
)
cd ..

echo.
echo ✅ 依赖安装完成
echo.
goto start_both

:start_frontend
echo.
echo 🌐 启动前端开发服务器...
echo 📍 访问地址: http://localhost:3000
echo 🛑 按 Ctrl+C 停止服务器
echo.
cd frontend
npm run dev
goto end

:start_backend
echo.
echo 🔧 检查后端环境变量配置...
if not exist "backend\.env" (
    echo ⚠️  未找到 .env 配置文件，使用默认配置
)
echo.
echo 🐍 启动后端API服务器...
echo 📍 API地址: http://localhost:8000
echo 📖 API文档: http://localhost:8000/docs
echo 🛑 按 Ctrl+C 停止服务器
echo.
cd backend
python main.py
goto end

:start_both
echo.
echo 🚀 同时启动前端和后端...
echo.
echo 📍 前端地址: http://localhost:3000
echo 📍 后端地址: http://localhost:8000
echo 📖 API文档: http://localhost:8000/docs
echo.
echo 🛑 关闭任意窗口将停止所有服务
echo.

REM 启动后端（在新窗口）
start "APIViewer 后端" cmd /k "cd /d %cd%\backend && python main.py"

REM 等待后端启动
echo ⏳ 等待后端启动...
timeout /t 3 /nobreak > nul

REM 启动前端（在新窗口）
start "APIViewer 前端" cmd /k "cd /d %cd%\frontend && npm run dev"

echo.
echo ✅ 服务启动完成!
echo.
echo 🌐 请访问: http://localhost:3000
echo 📖 API文档: http://localhost:8000/docs
echo.
echo 💡 提示: 
echo    - 关闭任一服务窗口将停止对应服务
echo    - 首次运行请选择选项4安装依赖
echo    - 遇到问题请查看各窗口的错误信息
echo.
pause

:end
echo.
echo 👋 感谢使用 APIViewer!
pause 